Multi-agent systems include loosely coupled intelligent agents deployed in an environment that interact with one another and/or make decisions based on the actions of or information from the other agents. The agents in these multi-agent systems applications may accordingly need to synchronize their actions, sensing, or timestamps with one another. For example, autonomous cars must synchronize in order to coexist and cooperate with each other in the streets. As another example, the creation of immersive experiences based on multiple moving cameras may need synchronized frames, and thus, may require each camera to synchronize with one another (sometimes without being connected to the same compute system).
Centralized schemes for synchronization of multiple agents may be undesirable due to the single point of failure. In addition, centralized schemes may be undesirable in widely distributed systems, such as in swarm systems where the collective would need more than one node due to local communication ranges. For instance, such schemes may fail in big and/or dense cities with buildings and structures blocking a centralized synchronization signal (e.g., a GPS signal that might be used for global synchronization) for certain critical periods of time.
Accuracy of software-based synchronization algorithms may vary due to unknown time delays between the application layer and the physical layer (e.g., transceivers), and without specialized hardware, accuracy may be limited. Further, in wireless communication systems, high bandwidth may be needed to achieve high-accuracy synchronization.
Like reference numbers and designations in the various drawings indicate like elements.